﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace DAO
{
    public class NhanVienDAO: DataAccess
    {
        public NhanVien CreateObj(DataRow row)
        {
            NhanVien obj = new NhanVien();
            obj.MaNhanVien = Utils.ToStr(row["MaNhanVien"]);
            obj.TenNhanVien= Utils.ToStr(row["TenNhanVien"]);
            obj.MatKhau = Utils.ToStr(row["MatKhau"]);
            obj.TenDN = Utils.ToStr(row["TenDN"]);
            return obj;
        }
        public List<NhanVien> GetList()
        {
            DataTable tb = GetData("EXEC GetData ?", "@TableNameX", "NhanVien", OleDbType.VarChar);
            List<NhanVien> LstNhanVien = new List<NhanVien>();
            for (int i = 0; i < tb.Rows.Count; i++)
            {
                LstNhanVien.Add(CreateObj(tb.Rows[i]));
            }
            return LstNhanVien;
        }
        public bool Insert(NhanVien obj)
        {
            obj.MaNhanVien = Utils.ToStr(InsertData("EXEC InsertNhanVien ?, ?, ?", CommandType.Text, 
                                   "@TenNhanVien", obj.TenNhanVien, OleDbType.VarWChar,              
                                   "@MatKhau", obj.MatKhau, OleDbType.VarChar,
                                   "@TenDN", obj.TenDN, OleDbType.VarChar));
            if (!string.IsNullOrEmpty(obj.MaNhanVien))
                return true;
            else
                return false;
        }
        public bool Update(NhanVien obj)
        {
            return UpdateDeleteData("EXEC UpdateNhanVien ?, ?, ?, ?", CommandType.Text,
                                   "@MaNhanVien", obj.MaNhanVien, OleDbType.VarChar,
                                   "@TenNhanVien", obj.TenNhanVien, OleDbType.VarWChar,
                                   "@MatKhau", obj.MatKhau, OleDbType.VarChar,
                                   "@TenDN", obj.TenDN, OleDbType.VarChar);
                                 
        }
        public bool Delete(NhanVien obj)
        {
            return UpdateDeleteData("EXEC DeleteNhanVien ?", CommandType.Text, "@MaNhanVien", obj.MaNhanVien, OleDbType.VarChar);
        }
    }
}
